"""
FastAPI应用主入口文件
负责创建应用实例、初始化数据库和配置路由
"""
from fastapi import FastAPI
from app.api.v1 import orders, payments, shopify
from app.database import engine
from app.models.order_models import SQLModel


# 创建FastAPI应用实例
app = FastAPI(
    title="3D定制商品生产平台 - 订单系统",
    description="订单系统与厂商对接模块",
    version="1.0.0"
)


# 创建数据库表
@app.on_event("startup")
def on_startup():
    """
    应用启动时执行的事件处理函数
    自动创建所有在SQLModel中定义的数据库表
    确保数据库结构与模型定义一致
    """
    SQLModel.metadata.create_all(engine)


# 包含路由 - 将各个模块的路由注册到主应用
app.include_router(orders.router, prefix="/api/v1")
"""注册订单相关路由，所有订单API路径以/api/v1开头"""
app.include_router(payments.router, prefix="/api/v1")
"""注册支付相关路由，所有支付API路径以/api/v1开头"""
app.include_router(shopify.router, prefix="/api/v1")
"""注册Shopify相关路由，所有Shopify API路径以/api/v1开头"""


@app.get("/")
def read_root():
    """
    根路径接口
    返回应用信息
    
    Returns:
        dict: 包含应用信息的字典
    """
    return {"message": "3D定制商品生产平台 - 订单系统 API"}


@app.get("/health")
def health_check():
    """
    健康检查接口
    用于监控系统状态
    
    Returns:
        dict: 包含健康状态的字典
    """
    return {"status": "healthy"}


# 添加直接运行入口点
if __name__ == "__main__":
    import uvicorn
    uvicorn.run("app.main:app", host="127.0.0.1", port=8000, reload=True)